
pub struct Appellation {
    pub name: String,
    pub nicknames: Vec<String>,
}

// impl Appellation {
//     pub fn new(name: &str) -> Appellation {
//         Appellation {
//             name: name.to_string(),
//             nicknames: Vec::new(),
//         }
//     }

//     pub fn add_nickname(&mut self, nickname: &str) {
//         self.nicknames.push(nickname.to_string());
//     }
// }

impl Drop for Appellation {
    fn drop(&mut self) {
        if !self.nicknames.is_empty() {
            println!("drop {}: {}", self.name, self.nicknames.join(", "));
        }
    }
}
